#ifndef __PROGRAM_H
#define __PROGRAM_H

#include "date.h"
#include "exercise.h"

class Program
{
	Date lastUpdateDate;
	Exercise** allExercises;
	int numOfExercises;
	int phisicalSizeOfExercisesArr;

public:
	Program();
	Program(const Program& other);
	~Program();

	void setDate(const Date& today) {lastUpdateDate = today;}

	const Date&      getLastUpdateDate() const {return lastUpdateDate;}
	int              getNumOfExercises() const {return numOfExercises;}
	Exercise**const  getAllExercises()   const {return allExercises;}

	void PrintExercisesByType(int type) const;

	void addExercise(const Exercise& newExercise);
	void removeExercise(const char* deviceName);

	const Program & operator+=(const Exercise & E);
	const Program & operator-=(const char *name);

	const Program & operator=(const Program & P);				     //#WD[2] RonnyR 3.12
    friend ostream & operator<<(ostream & os,const Program & P); //#WD[2] RonnyR 3.12

};

#endif // __PROGRAM_H